package org.jgs1904.controller.skip;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author 墨苍璃
 * @date 2022年01月10日22时55分
 * <p>
 * 通过SpringMVC来实现转发和重定向
 * 转发和重定向
 */
@Controller
@RequestMapping("/HelloControllerRedirect")
public class SpringMVCController {

    /**
     * 无需视图解析器
     *
     * @param model
     * @return
     */
    @GetMapping("/hello")
    public String sayHello(Model model) {
        System.out.println("无需视图解析器转发");
        //向模型中添加属性msg与值，可以在JSP页面中取出并渲染
        model.addAttribute("msg", "hello,SpringMVC-转发 ");

        //webapp/index.jsp
        //默认转发  等同于
        //        return "/index.jsp";
        return "forward:/index.jsp";
    }


    @GetMapping("/hello1")
    public String sayHello1(Model model) {
        System.out.println("无需视图解析器重定向");
        //向模型中添加属性msg与值，可以在JSP页面中取出并渲染
        model.addAttribute("msg", "hello,SpringMVC-重定向 ");
        //webapp/index.jsp

        //重定向
        return "redirect:/index.jsp";
    }


    /**
     * 通过视图解析器
     *
     * @param model
     * @return
     */
    @GetMapping("/hello2")
    public String sayHello2(Model model) {
        System.out.println("视图转发");
        //向模型中添加属性msg与值，可以在JSP页面中取出并渲染
        model.addAttribute("msg", "hello,SpringMVC-转发 ");
        //web-inf/jsp/hello.jsp

        //默认转发
        return "hello";
    }

    @GetMapping("/hello3")
    public String sayHello3(Model model) {
        System.out.println("视图重定向");
        //向模型中添加属性msg与值，可以在JSP页面中取出并渲染
        model.addAttribute("msg", "hello,SpringMVC-重定向 ");

        //webapp/index.jsp
        //重定向 等于重新请求 hello
        return "redirect:hello";

    }


}
